package cn.bdqn.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

    // 本地存储路径
    @Value("${prop.realPath}")
    private String realPath;

    @Value("${prop.get-file}")
    private String getFile;

    @Override
    public void addResourceHandlers (ResourceHandlerRegistry registry) {
        registry.addResourceHandler(getFile).addResourceLocations("file:" + realPath);
    }

    /*@Bean
    public WebMvcConfigurer corsConfigurer() {
        return new WebMvcConfigurer() {
            *//**
             * 跨域请求处理，通过添加跨域请求映射实现
             * @param registry
             *//*
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                registry.addMapping("http://localhost:80/getFile/template_file.txt")  // 为指定路径开启跨域请求处理
                        .allowedOriginPatterns("*") // 允许所有域
                        .allowedMethods("*") // 允许任何方法（post、get等）
                        .allowedHeaders("*") // 允许任何请求头
                        .allowCredentials(true) // 允许证书、cookie
                        .maxAge(3600L); // 在3600秒内，不需要再发送预检验请求，可以缓存该结果
            }
        };
    }*/
    /**
     * 跨域请求处理，通过添加跨域请求映射实现
     * @param registry
     */
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")  // 为指定路径开启跨域请求处理
                .allowedOriginPatterns("*") // 允许所有域
                .allowedMethods("*") // 允许任何方法（post、get等）
                .allowedHeaders("*") // 允许任何请求头
                .allowCredentials(true) // 允许证书、cookie
                .maxAge(3600L); // 在3600秒内，不需要再发送预检验请求，可以缓存该结果
    }

}
